<%
  # sorting ip addresses in ascending order is more efficient for nginx - so we need
  # to convert them to numbers first via IPAddr
  require 'ipaddr'
-%>
geo <%= @address ? "#{@address} " : '' %>$<%= @name %> {
<% if @ranges -%>
  ranges;
<% end -%>
<% if @default -%>
  default <%= @default %>;
<% end -%>
<% if @delete -%>
  delete  <%= @delete %>;
<% end -%>
<% if @proxies -%>

  <%- if @proxy_recursive -%>
  proxy_recursive;
  <%- end -%>
  <%- [@proxies].flatten.each do |proxy| -%>
  proxy <%= proxy %>;
  <%- end -%>
<% end -%>
<% if @networks -%>

  <%- field_width = @networks.inject(0) { |l,(k,v)| k.size > l ? k.size : l } -%>
  <%- @networks.sort_by{|k,v| IPAddr.new(k.split('-').first).to_i }.each do |key,value| -%>
  <%= sprintf("%-*s", field_width, key) %> <%= value %>;
  <%- end -%>
<% end -%>
}
